#include<bits/stdc++.h>
using namespace std;
bool f(int k,string& s){
for(int i=0;i<=25;i++){
vector<int> freq(26,0);
bool f=true;
for(int j=0;j<k;j++){
freq[s[j]-'a']++;
}
if(freq[i]==0) f=false;
int start=0;
int end=k-1;
while(end<=s.size()-1){
freq[s[start]-'a']--;
start++;
end++;
if(end<s.size()){
freq[s[end]-'a']++;
if(freq[i]==0) f=false;
}
}
if(f) return true;
}
return false;
}
int main(){
string s="";
cin>>s;
int low=0;
int high=s.size();
int ans=-1;
while(low<=high){
int mid=(low+high)/2;
if(f(mid,s)) high=mid-1,ans=mid;
else low=mid+1;
}
cout<<ans<<endl;
}
1605B - Reverse Sort | 1607C - Minimum Extraction |
1604B - XOR Specia-LIS-t | 1606B - Update Files |
1598B - Groups | 1602B - Divine Array |
1594B - Special Numbers | 1614A - Divan and a Store |
2085. Count Common Words With One Occurrence | 2089. Find Target Indices After Sorting Array |
2090. K Radius Subarray Averages | 2091. Removing Minimum and Maximum From Array |
6. Zigzag Conversion | 1612B - Special Permutation |
1481. Least Number of Unique Integers after K Removals | 1035. Uncrossed Lines |
328. Odd Even Linked List | 1219. Path with Maximum Gold |
1268. Search Suggestions System | 841. Keys and Rooms |
152. Maximum Product Subarray | 337. House Robber III |
869. Reordered Power of 2 | 1593C - Save More Mice |
1217. Minimum Cost to Move Chips to The Same Position | 347. Top K Frequent Elements |
1503. Last Moment Before All Ants Fall Out of a Plank | 430. Flatten a Multilevel Doubly Linked List |
1290. Convert Binary Number in a Linked List to Integer | 1525. Number of Good Ways to Split a String |